package orxatas.travelme.manager;

import orxatas.travelme.activity.AsyncActivity;
import orxatas.travelme.databases.exceptions.UserNotInLocal;
import orxatas.travelme.entity.User;
import orxatas.travelme.sync.AsyncNoticeCode;
import orxatas.travelme.sync.SyncUser;

public class UserManager {
	
	private AsyncActivity asyncActivity;
	private SyncUser syncUser;
	
	public UserManager(AsyncActivity asyncActivity){
		this.asyncActivity = asyncActivity;
		
		syncUser = new SyncUser(this, asyncActivity);
	}
	
	public User getUser(int idUser) throws UserNotInLocal{
		return syncUser.getUser(idUser);
	}

	/**
	 * Se le avisa de que hay una sincronización en curso. Convenio: Sólo utilizar cuando por su clase de sincronización.
	 * */
	public void syncInProgress(){

		asyncActivity.syncStarted();
	}
	
	/**
	 * Se le avisa de que la sincronización en curso ha terminado. Convenio: Sólo utilizar cuando por su clase de sincronización.
	 * */
	public void syncInProgressEnd(){
		
		asyncActivity.syncEnded();
	}
	
	/**
	 * Evento asyncrono para cambios en los grupos.
	 * */
	public void asyncNotice(AsyncNoticeCode code){
		
		asyncActivity.asyncNotice(code);
	}

}
